Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


tests/e2e/shell.spec.js 033004824d4b26738d8dd2b830bf199680f38f4f (03300482) Text, 4.03 KB

Tff7b72const Tb4b4b4{ Te6edf3testTb4b4b4, Te6edf3expect Tb4b4b4} Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"@playwright/test"Tb4b4b4)Tb4b4b4;
Tff7b72const Tb4b4b4{ Te6edf3prepareE2eSession Tb4b4b4} Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"./helpers"Tb4b4b4)Tb4b4b4;

Tff7b72function Te6edf3topChromeTb4b4b4(Te6edf3pageTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"div.sticky.top-0.z-\\[100\\]"Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Te6edf3testTb4b4b4.Te6edf3describeTb4b4b4(Ta5d6ff"Shell: sidebar, theme, notifications, call, search"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3testTb4b4b4.Te6edf3beforeEachTb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3request Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3prepareE2eSessionTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"desktop sidebar collapse toggle changes width"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/messages"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3sidebar Tff7b72= Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"div.fixed.inset-y-0.left-0"Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4{ Te6edf3hasTff7b72: Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"ul.py-3"Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3sidebarTb4b4b4)Tb4b4b4.Te6edf3toHaveClassTb4b4b4(Ta5d6ff/w-80/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"div.hidden.sm\\:flex.justify-end.p-2.border-b button"Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3sidebarTb4b4b4)Tb4b4b4.Te6edf3toHaveClassTb4b4b4(Ta5d6ff/w-16/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"div.hidden.sm\\:flex.justify-end.p-2.border-b button"Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3sidebarTb4b4b4)Tb4b4b4.Te6edf3toHaveClassTb4b4b4(Ta5d6ff/w-80/Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"header theme button toggles dark mode on root shell"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/messages"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3shell Tff7b72= Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"#app > div.h-screen.w-full.flex.flex-col"Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3shellTb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff30000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3themeBtn Tff7b72= Te6edf3pageTb4b4b4.Te6edf3getByTitleTb4b4b4(Ta5d6ff/Switch to (light|dark) mode/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3themeBtnTb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff20000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3initialDark Tff7b72= Tff7b72await Te6edf3shellTb4b4b4.Te6edf3evaluateTb4b4b4(Tb4b4b4(Te6edf3elTb4b4b4) Tb4b4b4=> Te6edf3elTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"dark"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3themeBtnTb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4.Te6edf3pollTb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3shellTb4b4b4.Te6edf3evaluateTb4b4b4(Tb4b4b4(Te6edf3elTb4b4b4) Tb4b4b4=> Te6edf3elTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"dark"Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3notTb4b4b4.Te6edf3toBeTb4b4b4(Te6edf3initialDarkTb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3themeBtnTb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4.Te6edf3pollTb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3shellTb4b4b4.Te6edf3evaluateTb4b4b4(Tb4b4b4(Te6edf3elTb4b4b4) Tb4b4b4=> Te6edf3elTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"dark"Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Te6edf3initialDarkTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"notification bell opens panel and closes from header"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/messages"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3topChromeTb4b4b4(Te6edf3pageTb4b4b4)
Tb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"button"Tb4b4b4)
Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4{ Te6edf3hasTff7b72: Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff'svg[aria-label="bell"]'Tb4b4b4) Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByRoleTb4b4b4(Ta5d6ff"heading"Tb4b4b4, Tb4b4b4{ Te6edf3nameTff7b72: Ta5d6ff"Notifications"Tb4b4b4, Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{
Te6edf3timeoutTff7b72: T79c0ff15000Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"No new notifications"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff10000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3panel Tff7b72= Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"div.fixed"Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4{ Te6edf3hasTextTff7b72: Ta5d6ff"Notifications" Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3panelTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff'svg[aria-label="close"]'Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByRoleTb4b4b4(Ta5d6ff"heading"Tb4b4b4, Tb4b4b4{ Te6edf3nameTff7b72: Ta5d6ff"Notifications"Tb4b4b4, Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeHiddenTb4b4b4(Tb4b4b4{
Te6edf3timeoutTff7b72: T79c0ff5000Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"call route shows Phone tab"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/call"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4)Tb4b4b4.Te6edf3toHaveURLTb4b4b4(Ta5d6ff/#\/call/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByRoleTb4b4b4(Ta5d6ff"button"Tb4b4b4, Tb4b4b4{ Te6edf3nameTff7b72: Ta5d6ff"Phone"Tb4b4b4, Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff20000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"messages Announces tab search input accepts text"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/messages"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"div.-mb-px.flex"Tb4b4b4)Tb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Announces"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3input Tff7b72= Te6edf3pageTb4b4b4.Te6edf3getByPlaceholderTb4b4b4(Ta5d6ff/Search \d+ recent announces/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3inputTb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3inputTb4b4b4.Te6edf3fillTb4b4b4(Ta5d6ff"e2e-filter"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3inputTb4b4b4)Tb4b4b4.Te6edf3toHaveValueTb4b4b4(Ta5d6ff"e2e-filter"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"NomadNet favourites and announces search inputs accept text"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/nomadnetwork"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3favSearch Tff7b72= Te6edf3pageTb4b4b4.Te6edf3getByPlaceholderTb4b4b4(Ta5d6ff/Search \d+ favourites/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3favSearchTb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff20000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3favSearchTb4b4b4.Te6edf3fillTb4b4b4(Ta5d6ff"fav-q"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3favSearchTb4b4b4)Tb4b4b4.Te6edf3toHaveValueTb4b4b4(Ta5d6ff"fav-q"Tb4b4b4)Tb4b4b4;

Tff7b72await Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"button.sidebar-tab"Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4{ Te6edf3hasTextTff7b72: Ta5d6ff"Announces" Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3nodeSearch Tff7b72= Te6edf3pageTb4b4b4.Te6edf3getByPlaceholderTb4b4b4(Ta5d6ff/Search \d+ recent announces/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3nodeSearchTb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3nodeSearchTb4b4b4.Te6edf3fillTb4b4b4(Ta5d6ff"node-q"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3nodeSearchTb4b4b4)Tb4b4b4.Te6edf3toHaveValueTb4b4b4(Ta5d6ff"node-q"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────